Benjamin Otte [Thu, 11 Apr 2019 02:31:36 +0000 (04:31 +0200)]
calc: Have better error location range
Benjamin Otte [Wed, 10 Apr 2019 19:10:03 +0000 (21:10 +0200)]
csspositionvalue: Redo the parser
The old one incorrectly rejected "center left" and "center right".
Benjamin Otte [Wed, 10 Apr 2019 17:42:09 +0000 (19:42 +0200)]
cssparser: Add error functions that take locations
... and use them to report better error locations for the warning when
blocks aren't terminated properly.
Benjamin Otte [Wed, 10 Apr 2019 16:40:50 +0000 (18:40 +0200)]
css: Move gtkcsssection.[ch] into gtk/css
Benjamin Otte [Wed, 10 Apr 2019 16:16:10 +0000 (18:16 +0200)]
cssparser: Pass in error locations explicitly
And for the quick function, use the start/end location of the current
token.
Benjamin Otte [Wed, 10 Apr 2019 16:01:56 +0000 (18:01 +0200)]
cssprovider: Redo error emission
Emit all errors via the parser, don't try to have a custom error
handling machinery.
The only exception is the initial file load error - we need to do that
one directly, because there is no parser.
Benjamin Otte [Wed, 10 Apr 2019 15:23:14 +0000 (17:23 +0200)]
csssection: Make printing functions public
Benjamin Otte [Wed, 10 Apr 2019 15:07:06 +0000 (17:07 +0200)]
cssprovider: Advance parser to start of declaration
This way, the block will reference the right location.
Benjamin Otte [Wed, 10 Apr 2019 14:37:52 +0000 (16:37 +0200)]
cssprovider: Change section handling
Instead of building a full tree of sections that then nobody cares
about, just create sections as necessary for when we use it in the
inspector.
Benjamin Otte [Wed, 10 Apr 2019 14:02:07 +0000 (16:02 +0200)]
cssparser: Improve location APIs
1. Export multiple locations
2. Return the location instead of passing one in
Benjamin Otte [Wed, 10 Apr 2019 03:18:14 +0000 (05:18 +0200)]
cssection: Return locations, not numbers
Now that we have GtkCssLocation, actually use it.
Benjamin Otte [Wed, 10 Apr 2019 02:55:37 +0000 (04:55 +0200)]
css: Remove GtkCssSectionType
It's unused.
Benjamin Otte [Wed, 10 Apr 2019 01:51:40 +0000 (03:51 +0200)]
csssection: Redo constructors
Remove the unused one and rename the old one to new_from_parser().
Benjamin Otte [Wed, 10 Apr 2019 00:59:15 +0000 (02:59 +0200)]
csssection: Store a GtkCssLocation
Benjamin Otte [Tue, 9 Apr 2019 03:40:50 +0000 (05:40 +0200)]
css: Review error messages
... and move them from _gtk_css_parser_error() to the proper new error
message.
Benjamin Otte [Tue, 9 Apr 2019 22:08:57 +0000 (00:08 +0200)]
css: Use gtk_css_parser_consume_any() for transition shorthand
Benjamin Otte [Tue, 9 Apr 2019 04:54:10 +0000 (06:54 +0200)]
testsuite: Update parser tests to new errors
Some errors are now properly detected as unknown values when previously
they were just treated as syntax errors.
Benjamin Otte [Tue, 9 Apr 2019 04:37:32 +0000 (06:37 +0200)]
testsuite: Handle warnings in CSS tests
Benjamin Otte [Tue, 9 Apr 2019 03:15:45 +0000 (05:15 +0200)]
cssshadow: Use gtk_css_parser_consume_any()
This way, the arguments can now really be speicified in any order.
A new testcase testing all the ordering possibilities has been added.
Benjamin Otte [Tue, 9 Apr 2019 02:47:00 +0000 (04:47 +0200)]
css: Redo for new parser
This commit is still way too big, but I couldn't make it smaller.
It transitions the old CSS parser to the new parser. CSS parsing is now
tokenized, everything else is probably still buggy.
Benjamin Otte [Sat, 6 Apr 2019 00:40:29 +0000 (02:40 +0200)]
rgba: Add gdk_rgba_parser_parse()
This function is a (private) function to parse a GdkRGBA accoridng to
the CSS specs. We should probably use it for gdk_rgba_parse(), but that
would change the syntax we accept there...
This also introduces a dependency of libgdk on libgtkcss.
So far, no users for this function exist.
Benjamin Otte [Tue, 19 Mar 2019 04:46:59 +0000 (05:46 +0100)]
Resurrect the CSS parser from the tokenizer branch
So far that parser is unused.
Benjamin Otte [Tue, 9 Apr 2019 00:29:27 +0000 (02:29 +0200)]
cssparser: Add gtk_css_parser_consume_url()
Another slight renaming and semantics change.
Benjamin Otte [Tue, 9 Apr 2019 00:15:12 +0000 (02:15 +0200)]
cssparser: Add gtk_css_parser_resolve_url()
Another slight change of semantics and naming for the new parser.
Benjamin Otte [Fri, 5 Apr 2019 11:41:08 +0000 (13:41 +0200)]
cssparser: Split integer gettig into has/consume functions
We can't try to get an integer because ultimately integer getters
support the same shenanigans that numbers and percentages do with calc()
and whatnot.
Benjamin Otte [Fri, 5 Apr 2019 00:57:14 +0000 (02:57 +0200)]
cssparser: Add gtk_css_parser_try_delim()
For parsing single code point delimiters. Also port calc() to use this.
Benjamin Otte [Fri, 5 Apr 2019 00:16:00 +0000 (02:16 +0200)]
cssparser: Get rid of _gtk_css_parser_try_double()
Use gtk_css_parser_consume_number() everywhere instead.
Benjamin Otte [Thu, 4 Apr 2019 21:37:38 +0000 (23:37 +0200)]
cssparser: Add gtk_css_parser_consume_string()
Well, just rename _gtk_css_parser_read_string() for the new semantics,
but this sounds cooler.
Benjamin Otte [Mon, 1 Apr 2019 22:21:02 +0000 (00:21 +0200)]
cssparser: Add gtk_css_parser_try_at_keyword()
Benjamin Otte [Mon, 1 Apr 2019 09:47:53 +0000 (11:47 +0200)]
cssparser: Drop _gtk_css_parser_has_prefix()
Replace it with has_ident/has_function. The old function is a typical
string matching API, not a tokenizing one.
Benjamin Otte [Sun, 31 Mar 2019 21:22:18 +0000 (23:22 +0200)]
parser: Get rid of _gtk_css_parser_is_eof()
Use gtk_css_parser_has_token() instead.
Benjamin Otte [Sun, 31 Mar 2019 18:05:12 +0000 (20:05 +0200)]
css: Make font-weight an integer
This conforms to what Pango does and to the CSS4 spec. And it makes the
parsing code easier. So let's go for it.
Benjamin Otte [Sun, 31 Mar 2019 17:24:53 +0000 (19:24 +0200)]
cssimagescaled: Use gtk_css_parser_consume_function()
As part of that, adapt the syntax from
-gtk-scaled( [<image>, <int>?]# )
to
-gtk-scaled( [<image> <int>?]# )
because the commas should be used to separate distinct elements.
Note that almost nobody specifies the scale anyway.
Benjamin Otte [Sun, 31 Mar 2019 12:41:45 +0000 (14:41 +0200)]
easevalue: Use gtk_css_parser_consume_function()
Benjamin Otte [Sun, 31 Mar 2019 11:39:58 +0000 (13:39 +0200)]
cssimagelinear: Use gtk_css_parser_consume_function()
Benjamin Otte [Sun, 31 Mar 2019 10:40:53 +0000 (12:40 +0200)]
cssparser: Add gtk_css_parser_consume_ident()
And use it to fix the palette parser.
Benjamin Otte [Sun, 31 Mar 2019 09:39:24 +0000 (11:39 +0200)]
shorthand: Use gtk_css_parser_try_ident()
Benjamin Otte [Sun, 31 Mar 2019 00:17:44 +0000 (01:17 +0100)]
cssimageradial: Use gtk_css_parser_consume_function()
Benjamin Otte [Sat, 30 Mar 2019 23:52:22 +0000 (00:52 +0100)]
cssimagefallback: Use gtk_css_parser_consume_function()
Benjamin Otte [Sat, 30 Mar 2019 19:20:11 +0000 (20:20 +0100)]
cssimagerecolor: Use gtk_css_parser_consume_function()
Benjamin Otte [Sat, 30 Mar 2019 19:13:11 +0000 (20:13 +0100)]
reftests: Add a cross-fade syntax-checking reftest
Making sure all this newfangled code does what it says.
Benjamin Otte [Sat, 30 Mar 2019 15:02:58 +0000 (16:02 +0100)]
cross-fade: Make progress optional
Now we accept progress being unset and then dynamically compute it
on-demand.
Benjamin Otte [Sat, 30 Mar 2019 11:04:51 +0000 (12:04 +0100)]
cross-fade: Use gtk_css_parser_consume_any()
.. and gtk_css_parser_consume_function().
gtk_css_parser_consume_any() is a new function that implements the CSS
spec's any combinator ||.
Benjamin Otte [Tue, 26 Mar 2019 16:39:07 +0000 (17:39 +0100)]
cssimage: Make cross-fade() an array
The new spec at https://drafts.csswg.org/css-images-4/#cross-fade-function
allows infinite images to cross-fade and we want to, too.
Benjamin Otte [Mon, 25 Mar 2019 03:11:08 +0000 (04:11 +0100)]
cssimageicontheme: Use gtk_css_parser_consume_function()
Benjamin Otte [Sun, 24 Mar 2019 23:40:59 +0000 (00:40 +0100)]
cssfiltervalue: Use gtk_css_parser_consume_function()
Benjamin Otte [Sun, 24 Mar 2019 21:59:10 +0000 (22:59 +0100)]
csstransformvalue: Use gtk_css_parser_consume_function()
Benjamin Otte [Sun, 24 Mar 2019 20:11:53 +0000 (21:11 +0100)]
cssparser: Introduce gtk_css_parser_consume_function()
This is a vfunc-based function parser.
Benjamin Otte [Sun, 24 Mar 2019 13:36:55 +0000 (14:36 +0100)]
cssparser: Add gtk_css_parser_try_token()
Benjamin Otte [Sun, 24 Mar 2019 13:03:52 +0000 (14:03 +0100)]
cssparser: Introduce gtk_css_parser_try_ident()
... and gtk_css_parser_has_function().
Benjamin Otte [Sun, 24 Mar 2019 02:56:31 +0000 (03:56 +0100)]
cssparser: Get rid of _gtk_css_parser_begins_with()
Replace it with calls to gtk_css_parser_has_token().
Benjamin Otte [Sat, 23 Mar 2019 17:21:59 +0000 (18:21 +0100)]
parser: Add gtk_css_parser_has_token()
This is ithe first step towards converting the parsing code to use
tokens. For now, the topken type is just a magic enum value that only
works as-needed.
Benjamin Otte [Sat, 23 Mar 2019 02:27:56 +0000 (03:27 +0100)]
css: Split GtkCssLocation into its own file
And make the struct public, so we can use it in signal handlers.
Benjamin Otte [Mon, 18 Mar 2019 04:32:05 +0000 (05:32 +0100)]
csstokenizer: Add gtk_css_token_is_preserved()
Benjamin Otte [Fri, 15 Mar 2019 03:00:21 +0000 (04:00 +0100)]
tokenizer: Pass error arg to read_token()
Instead of an error vfunc, have the tokenizer vfunc take a GError
argument. Note that even when an error is returned, there is still a
token to be read.
Benjamin Otte [Fri, 4 Mar 2016 17:40:11 +0000 (18:40 +0100)]
css: Add GtkCssTokenizer
This is copied from an old branch of mine.
Benjamin Otte [Fri, 22 Mar 2019 03:20:17 +0000 (04:20 +0100)]
build: Add gtk-css static library
This library is meant to be the new CSS library that gets used from GDK,
GSK and GTK for string printing and parsing.
As a first step, move GtkCssProviderError into it.
While doing so, split it into GtkCssParserError (for critical problems)
and GtkCssParserWarning (for non-critical problems).
Emmanuele Bassi [Fri, 12 Apr 2019 17:26:52 +0000 (17:26 +0000)]
Merge branch 'vulkan-warning' into 'master'
vulkan: Add missing enumeration value
See merge request GNOME/gtk!740
Emmanuele Bassi [Fri, 12 Apr 2019 17:03:22 +0000 (18:03 +0100)]
vulkan: Add missing enumeration value
Vulkan 1.1.97 added VK_ERROR_INVALID_DEVICE_ADDRESS_EXT, and we now must
handle it.
Matthias Clasen [Fri, 12 Apr 2019 17:01:19 +0000 (13:01 -0400)]
inspector: Modernize action references
Now that we do inline editing, we need to
show this in a single line.
Matthias Clasen [Fri, 12 Apr 2019 16:35:06 +0000 (12:35 -0400)]
inspector: Drop binding info
Thia was relying on non-public implementation details
and was broken since 2015.
Matthias Clasen [Fri, 12 Apr 2019 15:20:26 +0000 (15:20 +0000)]
Merge branch 'inspector-props' into 'master'
inspector: Improve property list editing
See merge request GNOME/gtk!736
Matthias Clasen [Fri, 12 Apr 2019 03:42:31 +0000 (23:42 -0400)]
inspector: Improve property list editing
Replace the treeview with popups on the property
page with a listbox with inline editing.
Benjamin Otte [Fri, 12 Apr 2019 14:31:39 +0000 (16:31 +0200)]
boxlayout: Remove unused variable
Emmanuele Bassi [Sat, 6 Apr 2019 13:20:02 +0000 (14:20 +0100)]
ci: Use UTF-8 encoding for the test cover report
Since we're embedding text coming from the tests into the report, we
should specify an encoding for both the source JSON file and the target
XML file when opening them.
Emmanuele Bassi [Fri, 12 Apr 2019 12:54:08 +0000 (12:54 +0000)]
Merge branch 'issue-1821' into 'master'
Fix get_request_mode for GtkBoxLayout
Closes #1821
See merge request GNOME/gtk!737
Emmanuele Bassi [Fri, 12 Apr 2019 12:11:28 +0000 (13:11 +0100)]
Fix get_request_mode for GtkBoxLayout
The default GtkWidgetClass.get_request_mode() is implemented by
GtkContainer; now that GtkBox uses a GtkBoxLayout, we need to implement
it inside the layout manager to preserve the same behavior as the old
GtkBox.
Fixes #1821
Chun-wei Fan [Fri, 12 Apr 2019 10:08:36 +0000 (18:08 +0800)]
meson: Only use HarfBuzz fallback when needed
The current Meson releases have broken CMake support, meaning that it is
likely that HarfBuzz could not be located for Visual Studio builds
unless one handcrafts pkg-config files for it, which is both tedious and
error-prone.
Instead, use the existing mechanism for looking for the HarfBuzz headers
and libraries on Visual Studio first when it could not be found via
dependency(), and then use the fallback if it still could not be found.
Matthias Clasen [Fri, 12 Apr 2019 02:28:15 +0000 (22:28 -0400)]
inspector: Cometic fixes for controllers
Add a frame, and make the rows not activatable.
Matthias Clasen [Fri, 12 Apr 2019 02:06:16 +0000 (22:06 -0400)]
inspector: Make rows activatable
Rows containing just a switch should be activatable,
and toggle the switch.
Matthias Clasen [Thu, 11 Apr 2019 23:16:07 +0000 (19:16 -0400)]
inspector: Fix css autosave
We were creating the directory with improper permissions.
Matthias Clasen [Thu, 11 Apr 2019 22:58:40 +0000 (18:58 -0400)]
Adwaita: Add spacing to message dialogs
The text was running into the action area.
Benjamin Otte [Thu, 11 Apr 2019 21:36:28 +0000 (23:36 +0200)]
inspector: Enable by default
We don't want to stop people from being able to debug GTK applications
by default.
The keybinding also runs last in event delivery, so it doesn't override
existing keybindings anywhere and is therefor safe to enable.
The setting of course should remain, so people who want to lock down
installations, like for kiosks, can turn this off.
Aurimas Černius [Thu, 11 Apr 2019 19:50:00 +0000 (22:50 +0300)]
Updated Lithuanian translation
Matthias Clasen [Thu, 11 Apr 2019 17:23:03 +0000 (17:23 +0000)]
Merge branch 'frame-clock' into 'master'
gdkframeclockidle: Don't permanently skew frame time
Closes #1612
See merge request GNOME/gtk!731
Jakub Steiner [Thu, 11 Apr 2019 13:35:24 +0000 (15:35 +0200)]
Adwaita: OSD set semi-opaque again
- forgot the bling bling
Jakub Steiner [Thu, 11 Apr 2019 13:26:55 +0000 (15:26 +0200)]
Adwaita: less purple OSD style
- one of the bits that escaped the purple cast is the osd background color
Chris Williams [Tue, 9 Apr 2019 20:26:25 +0000 (16:26 -0400)]
gdkframeclockidle: Don't permanently skew frame time
Since commit
3b2f9395, the frame time may be set into the future, so
only ensure monotonicity, and don't store the offset. This prevents the
frame time from becoming out of sync with g_get_monotonic_time().
Fixes #1612
Daniel Mustieles [Tue, 9 Apr 2019 08:11:59 +0000 (08:11 +0000)]
Update Spanish translation
Chris Williams [Mon, 8 Apr 2019 20:02:32 +0000 (16:02 -0400)]
gdkframeclockidle: Remove unused struct member
compute_frame_time() has been using g_get_monotonic_time() instead of
GTimer since commit
7dfa4121.
Matthias Clasen [Mon, 8 Apr 2019 15:09:40 +0000 (15:09 +0000)]
Merge branch 'wip/cellrendererpixbuf-fallbacks' into 'master'
cellrendererpixbuf: Use fallback icons with icon-name
Closes #1809
See merge request GNOME/gtk!728
Iain Lane [Mon, 8 Apr 2019 13:52:49 +0000 (14:52 +0100)]
cellrendererpixbuf: Use fallback icons with icon-name
This gives us a better chance of finding an icon to show.
Closes: #1809
Matthias Clasen [Mon, 8 Apr 2019 12:59:06 +0000 (12:59 +0000)]
Merge branch 'pick-insensitive2' into 'master'
Make picking insensitive widgets work again
Closes #1816 and #51
See merge request GNOME/gtk!727
Matthias Clasen [Sun, 7 Apr 2019 21:36:40 +0000 (21:36 +0000)]
Rename things
Rename the can-pick property to can-target,
and redo the pick flags with more descriptive names.
Ask Hjorth Larsen [Sun, 7 Apr 2019 22:04:13 +0000 (00:04 +0200)]
Updated Danish translation of gtk
Matthias Clasen [Sun, 7 Apr 2019 20:34:12 +0000 (20:34 +0000)]
Keep a drawable check in gtk_widget_contains
If the widget is not drawable, it probably doesn't have
an allocation, so asking the question does not make much
sense.
Matthias Clasen [Sun, 7 Apr 2019 17:27:58 +0000 (17:27 +0000)]
Document GtkPickFlags
Matthias Clasen [Sun, 7 Apr 2019 17:23:17 +0000 (17:23 +0000)]
inspector: Allow picking insensitive widgets again
Use the new argument to gtk_widget_pick to allow picking
insensitive widgets.
Closes: https://gitlab.gnome.org/GNOME/gtk/issues/51
Matthias Clasen [Sun, 7 Apr 2019 17:23:06 +0000 (17:23 +0000)]
tooltip: Allow tooltips on insensitive widgets again
Use the new argument to gtk_widget_pick to allow picking
insensitive widgets.
Closes: https://gitlab.gnome.org/GNOME/gtk/issues/1816
Matthias Clasen [Sun, 7 Apr 2019 17:19:09 +0000 (17:19 +0000)]
Add a flags argument to gtk_widget_pick
This will be used to let the inspector and other users
pick insensitive widgets again. For now, update all
callers to pass no flags, preserving the current
behavior.
Matthias Clasen [Sun, 7 Apr 2019 17:00:51 +0000 (17:00 +0000)]
widget: Drop the pick vfunc
The way to influence picking is to implement contains,
we no longer use the pick vfunc.
Matthias Clasen [Sun, 7 Apr 2019 16:11:20 +0000 (16:11 +0000)]
window: Stop implementing pick
Treat popovers as a special-case for now.
Matthias Clasen [Sun, 7 Apr 2019 16:03:27 +0000 (16:03 +0000)]
paned: Drop the pick vfunc
Implement contains on the handle, instead of pick on the paned.
Matthias Clasen [Sun, 7 Apr 2019 15:47:24 +0000 (15:47 +0000)]
gizmo: Add a contains_func
Let GtkGizmo override the contains() implementation.
Update all callers to pass NULL for the contains_func.
Matthias Clasen [Sun, 7 Apr 2019 15:13:52 +0000 (15:13 +0000)]
widget: Make contains just be about position
Leave out reactiveness considerations here,
pick will handle those.
Matthias Clasen [Sun, 7 Apr 2019 15:11:22 +0000 (15:11 +0000)]
widget: Make contains respect rounded borders
We have the api for this now.
Matthias Clasen [Sun, 7 Apr 2019 15:16:23 +0000 (15:16 +0000)]
Merge branch 'treeview-expander-fix' into 'master'
treeview: Make expanders work again
Closes #1814
See merge request GNOME/gtk!725
Matthias Clasen [Sun, 7 Apr 2019 12:16:20 +0000 (12:16 +0000)]
treeview: Make expanders work again
These were broken by the crossing event unification.
We are now generating some more crossing events, and
the treeview was not looking closely enough at the
ones it gets.
Closes: https://gitlab.gnome.org/GNOME/gtk/issues/1814
Matthias Clasen [Sat, 6 Apr 2019 23:32:37 +0000 (23:32 +0000)]
NEWS: More details about transforms
Matthias Clasen [Sat, 6 Apr 2019 23:14:01 +0000 (23:14 +0000)]
Merge branch 'inspector-work' into 'master'
Inspector work
See merge request GNOME/gtk!724